﻿using System;
using ProtoBuf;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using T0yK4T.IO;

namespace ToyChat
{
    /// <summary>
    /// Contains internal (as in system) packet types
    /// <para/>
    /// Please note that these Types will always start at <see cref="T0yK4T.IO.PacketType.MIN_EXTERNAL"/> + 1
    /// </summary>
    public enum InternalPacketTypes : uint
    {
        /// <summary>
        /// Specifies a login challenge packet
        /// </summary>
        LoginChallenge = PacketType.MIN_EXTERNAL + 1,

        /// <summary>
        /// Specifies a welcome packet
        /// </summary>
        WelcomePacket = LoginChallenge + 1,

        /// <summary>
        /// Specifies that this packet contains a list of type aliases in use by the server
        /// </summary>
        TypeAliases = WelcomePacket + 1,

        /// <summary>
        /// Specifies that this packet contains a request to register as a user on the current server
        /// </summary>
        RegisterUser = TypeAliases + 1,

        /// <summary>
        /// Specifies that the packet contains a <see cref="KickUserMessage"/> message
        /// </summary>
        Kick = RegisterUser + 1,

        /// <summary>
        /// Used as offset for other types
        /// </summary>
        LAST = Kick + 1,
    }
}
